## [1] "Run Completed at 2018-02-06 15:07:53"

Absence data

Models

Random Baseline

\[ Yobs_{i,j} \sim Bernoulli(N(0,1.68)) \]

Note that this is a random probability of interaction on a per observation basis. This is different than a random link model. If we are interested in a binary network, a random interaction probability model will lead to a link probability of 1-(1/2)^n in n sampling events.

## sink("models/SpeciesIdentity.jags")
## cat("
##     model {
##     
##     for (x in 1:Nobs){
## 
##     #observation
##     logit(s[x])<-alpha[Bird[x],Plant[x]]
##     Yobs[x] ~ dbern(s[x])
##     
##     #Observed discrepancy
##     E[x]<-abs(Yobs[x]- s[x])
##     }
##     
##     #Assess Model Fit - Predict remaining data
##     for(x in 1:Nnewdata){
##     
##       #Generate prediction
##       logit(snew[x])<-alpha[NewBird[x],NewPlant[x]]
##       Ynew_pred[x]~dbern(snew[x])
##     
##       #Assess fit, proportion of corrected predicted observations
##       Enew[x]<-abs(Ynew[x]-Ynew_pred[x])
## 
##     }
##     
##     #Priors
## 
##     #Species level priors
##     for (i in 1:Birds){
##       for (j in 1:Plants){
## 
##         #Intercept
##         #logit prior, then transform for plotting
##         alpha[i,j] ~ dnorm(0,0.386)
##       } 
##     }
## 
##     #derived posterior check
##     fit<-sum(E[]) #Discrepancy for the observed data
##     fitnew<-sum(Enew[])
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 0
##    Unobserved stochastic nodes: 1933
##    Total graph size: 9379
## 
## Initializing model

Assess Convergence

Species Identity

\[ Yobs_{i,j} \sim Bernoulli(\lambda_{i,j}) \]

## sink("models/SpeciesIdentity.jags")
## cat("
##     model {
##     
##     for (x in 1:Nobs){
## 
##     #observation
##     logit(s[x])<-alpha[Bird[x],Plant[x]]
##     Yobs[x] ~ dbern(s[x])
##     
##     #Observed discrepancy
##     E[x]<-abs(Yobs[x]- s[x])
##     }
##     
##     #Assess Model Fit - Predict remaining data
##     for(x in 1:Nnewdata){
##     
##       #Generate prediction
##       logit(snew[x])<-alpha[NewBird[x],NewPlant[x]]
##       Ynew_pred[x]~dbern(snew[x])
##     
##       #Assess fit, proportion of corrected predicted observations
##       Enew[x]<-abs(Ynew[x]-Ynew_pred[x])
## 
##     }
##     
##     #Priors
## 
##     #Species level priors
##     for (i in 1:Birds){
##       for (j in 1:Plants){
## 
##         #Intercept
##         #logit prior, then transform for plotting
##         alpha[i,j] ~ dnorm(0,0.386)
##       } 
##     }
## 
##     #derived posterior check
##     fit<-sum(E[]) #Discrepancy for the observed data
##     fitnew<-sum(Enew[])
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 605
##    Unobserved stochastic nodes: 1328
##    Total graph size: 8821
## 
## Initializing model

Assess Convergence

Detectability + Species Identity

Observation Model:

\[ Yobs_{i,j,k,d} \sim Binomial(N_{i,j,k},\omega_i) \]

Process Model:

\[ N_{i,j,k} \sim Binomial(\lambda_{i,j}) \] \[ Yobs_{i,j} \sim Bernoulli(\lambda_{i,j}) \]

## sink("models/SpeciesIdentity_Detect.jags")
## cat("
##     model {
##     
##     #Observation Model
##     for (x in 1:Nobs){
##       
##       #Observation Process
##       #True state
##       z[x] ~ dbern(detect[Bird[x]]) 
##       
##       #Observation
##       logit(s[x])<-alpha[Bird[x],Plant[x]]
##       p[x]<-z[x] * s[x]
##       Yobs[x] ~ dbern(p[x])
##       
##       #Observed discrepancy
##       E[x]<-abs(Yobs[x]- s[x])
##     }
##     
##     #Assess Model Fit - Predict remaining data
##     for(x in 1:Nnewdata){
##     
##       #Generate prediction
##       znew[x] ~ dbern(detect[NewBird[x]])
##       logit(snew[x])<-alpha[NewBird[x],NewPlant[x]]
##       pnew[x]<-znew[x]*snew[x]
##   
##       #Predicted observation
##       Ynew_pred[x]~dbern(pnew[x])
##       
##       #Assess fit, proportion of corrected predicted links
##       Enew[x]<-abs(Ynew[x]-Ynew_pred[x])
##     
##     }
##     
##     #Priors
##     #Observation model
##     #Detect priors, logit transformed - Following lunn 2012 p85
##     for(x in 1:Birds){
##       logit(detect[x])<-dcam[x]
##       dcam[x]~dnorm(omega_mu,omega_tau)
##     }
##     
##     #Process Model
##     #Species level priors
##     for (i in 1:Birds){
##       for (j in 1:Plants){
##         #Intercept
##         #logit prior, then transform for plotting
##         alpha[i,j] ~ dnorm(0,0.386)
##       } 
##     }
##     
##     #OBSERVATION PRIOR
##     omega_mu ~ dnorm(0,0.386)
##     omega_tau ~ dunif(0,10)
##     
##     #derived posterior check
##     fit<-sum(E[]) #Discrepancy for the observed data
##     fitnew<-sum(Enew[])
##     
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 605
##    Unobserved stochastic nodes: 2871
##    Total graph size: 11906
## 
## Initializing model

Assess Convergence

# Incorportating species occurrence

If species co-occurrence is a prerequisite for interaction, then the absence of interactions may stem either from a lack of detectability or species absence. We can jointly model the presence of species as a function of elevation and then existance of an interaction.

Species Identity

Observation Model:

\[ Yobs_{i,j,k,d} \sim Binomial(N_{i,j,k},\omega_i) \]

Process Model:

\[ N_{i,j,k} \sim Binomial(\lambda_{i,j}) \] \[ Yobs_{i,j} \sim Bernoulli(\lambda_{i,j}) \]

## sink("models/SpeciesIdentity_Detect_Elevation.jags")
## cat("
##     model {
##     
##     #Observation Model
##     for (x in 1:Nobs){
##     
##       #Occurrence Process
##       logit(psi[x])<-alpha_occ[Bird[x]] + beta_occ[Bird[x]] * elevation[x] + beta2_occ[Bird[x]] * elevation[x]^2
##       occ[x] ~ dbern(psi[x])
##       
##       #Is the species available to be detected?
##       rho[x]<-detect[Bird[x]]*occ[x]
##       
##       #Observation Process
##       #True state
##       z[x] ~ dbern(rho[x]) 
##       
##       #observation
##       logit(s[x])<-alpha[Bird[x],Plant[x]]
##       p[x]<-z[x] * s[x]
##       Yobs[x] ~ dbern(p[x])
##       
##       #Observed discrepancy
##       E[x]<-abs(Yobs[x]- s[x])
##     }
##     
##     #Assess Model Fit - Predict remaining data
##     for(x in 1:Nnewdata){
##     
##       #Generate prediction
##       #Occurrence Process
##       logit(psi_new[x])<-alpha_occ[NewBird[x]] + beta_occ[NewBird[x]] * elevation_new[x]
##       occ_new[x] ~ dbern(psi_new[x])
##       
##       #Is the species present to be detected?
##       rho_new[x]<-detect[NewBird[x]]*occ_new[x]
##       znew[x] ~ dbern(rho_new[x])
## 
##       logit(snew[x])<-alpha[NewBird[x],NewPlant[x]]
##       pnew[x]<-znew[x]*snew[x]
##   
##       #Predicted observation
##       Ynew_pred[x]~dbern(pnew[x])
##       
##       #Assess fit, proportion of corrected predicted links
##       Enew[x]<-abs(Ynew[x]-Ynew_pred[x])
##     
##     }
##     
##     #Priors
##     #Note: flat logit priorsm - Following lunn 2012 p85
## 
## 
##     #Occurrence Priors
##     for(x in 1:Birds){
##       alpha_occ[x] ~ dnorm(0,0.386)
##       beta_occ[x] ~ dnorm(0,0.386)
##       beta2_occ[x] ~ dnorm(0,0.386)
##     }
## 
##     #Observation model
## 
##     for(x in 1:Birds){
##       logit(detect[x])<-dcam[x]
##       dcam[x]~dnorm(omega_mu,omega_tau)
##     }
## 
##     
##     #Process Model
##     #Species level priors
##     for (i in 1:Birds){
##       for (j in 1:Plants){
##         #Intercept
##         #logit prior, then transform for plotting
##         alpha[i,j] ~ dnorm(0,0.386)
##       } 
##     }
##     
##     #OBSERVATION PRIOR
##     omega_mu ~ dnorm(0,0.386)
##     omega_tau ~ dunif(0,10)
##     
##     #derived posterior check
##     fit<-sum(E[]) #Discrepancy for the observed data
##     fitnew<-sum(Enew[])
##     
##     }
##     ",fill=TRUE)
## 
## sink()
## Compiling model graph
##    Resolving undeclared variables
##    Allocating nodes
## Graph information:
##    Observed stochastic nodes: 605
##    Unobserved stochastic nodes: 4440
##    Total graph size: 19820
## 
## Initializing model

Assess Convergence

Elevation ranges

Model Comparison

By Species

Detectability

Proportion of predicted observations

Predicted network statistics

Dashed line is the observed network from the time-series.

Predicted betadiversity

Dissimilairty in interactions (Beta_WN from Poisot 2012) Dashed line is the observed network from the time-series. Note that this is really a measure of dissimilairty in one level (hummimngbirds), as the dissimilarity in plants is fixed by the sampling protocol. While there be a correlation between the species pool and the chosen plant to film, this is filtered by a human placing a camera at that plant, and as such isn’t a true measure of plant dissimiality.

Interaction Betadiversity

Model overlap

Create a kind of venn diagram on PCA of model similarity based on per link discrepency.

## # A tibble: 19 x 3
## # Groups:   Model [4]
##    Model                      mean pair                                   
##    <chr>                     <dbl> <chr>                                  
##  1 Species_Detect           -1.00  Stripe-throated Hermit_Gasteranthus qu…
##  2 Species_Detect           -1.00  Tawny-bellied Hermit_Columnea ciliata  
##  3 Species_Detect_Elevation -1.00  Gorgeted Sunangel_Palicourea lineata   
##  4 Species_Detect_Elevation -1.00  Stripe-throated Hermit_Gasteranthus qu…
##  5 Species_Detect_Elevation -1.00  Violet-tailed Sylph_Heliconia burleana 
##  6 Species_Detect           -0.967 Tawny-bellied Hermit_Centropogon solan…
##  7 Species_Detect           -0.950 Tawny-bellied Hermit_Glossoloma oblong…
##  8 Species_Detect_Elevation -0.950 Buff-tailed Coronet_Meriania tomentosa 
##  9 Species_Detect_Elevation -0.950 Collared Inca_Palicourea acetosoides   
## 10 Species_Detect_Elevation -0.950 Tawny-bellied Hermit_Glossoloma oblong…
## 11 Random                   -0.850 Tawny-bellied Hermit_Columnea strigosa 
## 12 Species                  -0.817 Tawny-bellied Hermit_Centropogon solan…
## 13 Random                   -0.800 Fawn-breasted Brilliant_Meriania tomen…
## 14 Random                   -0.800 White-whiskered Hermit_Heliconia burle…
## 15 Species                  -0.800 Stripe-throated Hermit_Gasteranthus qu…
## 16 Species                  -0.800 Violet-tailed Sylph_Heliconia burleana 
## 17 Species                  -0.800 Wedge-billed Hummingbird_Heliconia bur…
## 18 Random                   -0.700 Collared Inca_Psammisia sodiroi        
## 19 Random                   -0.700 White-whiskered Hermit_Palicourea demi…

Without random model